home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 April: Mac OS SDK / Dev.CD Apr 00 SDK1.toast / Development Kits / Hardware / Mac OS USB DDK 1.4.1f4 / Interfaces / PowerClass.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-02-18  |  7.2 KB  |  244 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        PowerClass.h
  3.  
  4.     Contains:    xxx put contents here xxx
  5.  
  6.     Version:    xxx put version here xxx
  7.  
  8.     Copyright:    © 1999-2000 by Apple Computer, Inc., all rights reserved.
  9.  
  10. */
  11.  
  12. #ifndef __POWERCLASS__
  13. #define __POWERCLASS__
  14.  
  15. #include <HID.h>
  16. #include <Power.h>
  17. //
  18.  
  19. // Usage pages from HID Power Device spec 1.0
  20. enum
  21. {
  22.     kUsage_PowerDevice                = 0x84,
  23.     kUsage_BatterySystem            = 0x85,
  24.     kUsage_PowerDeviceReserved86    = 0x86,
  25.     kUsage_PowerDeviceReserved87    = 0x87
  26.     
  27. };
  28.  
  29. // Usage constants for Power Device page (0x84) 
  30. enum
  31. {
  32.     kUsage_84_iName                = 0x01,
  33.     kUsage_84_PresentStatus        = 0x02,
  34.     kUsage_84_ChangedStatus        = 0x03,
  35.     kUsage_84_UPS                = 0x04,
  36.     kUsage_84_PowerSupply        = 0x05,
  37.  
  38.     kUsage_84_BatterySystem        = 0x10,
  39.     kUsage_84_BatterySystemID    = 0x11,
  40.     kUsage_84_Battery            = 0x12,
  41.     kUsage_84_BatteryID            = 0x13,
  42.     kUsage_84_Charger            = 0x14,
  43.     kUsage_84_ChargerID            = 0x15,
  44.     kUsage_84_PowerConverter    = 0x16,
  45.     kUsage_84_PowerConverterID    = 0x17,
  46.     kUsage_84_OutletSystem        = 0x18,
  47.     kUsage_84_OutletSystemID    = 0x19,
  48.     kUsage_84_Input                = 0x1A,
  49.     kUsage_84_InputID            = 0x1B,
  50.     kUsage_84_Output            = 0x1C,
  51.     kUsage_84_OutputID            = 0x1D,
  52.     kUsage_84_Flow                = 0x1E,
  53.     kUsage_84_FlowID            = 0x1F,
  54.  
  55.     kUsage_84_Outlet            = 0x20,
  56.     kUsage_84_OutletID            = 0x21,
  57.     kUsage_84_Gang                = 0x22,
  58.     kUsage_84_GangID            = 0x23,
  59.     kUsage_84_PowerSummary        = 0x24,
  60.     kUsage_84_PowerSummaryID    = 0x25,
  61.  
  62.     kUsage_84_Voltage            = 0x30,
  63.     kUsage_84_Current            = 0x31,
  64.     kUsage_84_Frequency            = 0x32,
  65.     kUsage_84_ApparentPower        = 0x33,
  66.     kUsage_84_ActivePower        = 0x34,
  67.     kUsage_84_PercentLoad        = 0x35,
  68.     kUsage_84_Temperature        = 0x36,
  69.     kUsage_84_Humidity            = 0x37,
  70.     kUsage_84_BadCount            = 0x38,
  71.  
  72.     kUsage_84_ConfigVoltage        = 0x40,
  73.     kUsage_84_ConfigCurrent        = 0x41,
  74.     kUsage_84_ConfigFrequency    = 0x42,
  75.     kUsage_84_ConfigApparentPower = 0x43,
  76.     kUsage_84_ConfigActivePower    = 0x44,
  77.     kUsage_84_ConfigPercentLoad    = 0x45,
  78.     kUsage_84_ConfigTemperature    = 0x46,
  79.     kUsage_84_ConfigHumidity    = 0x47,
  80.  
  81.     kUsage_84_SwitchOnControl    = 0x50,
  82.     kUsage_84_SwitchOffControl    = 0x51,
  83.     kUsage_84_ToggleControl        = 0x52,
  84.     kUsage_84_LowVoltageTransfer  = 0x53,
  85.     kUsage_84_HighVoltageTransfer = 0x54,
  86.     kUsage_84_DelayBeforeReboot      = 0x55,
  87.     kUsage_84_DelayBeforeStartup  = 0x56,
  88.     kUsage_84_DelayBeforeShutdown = 0x57,
  89.     kUsage_84_Test                = 0x58,
  90.     kUsage_84_ModuleReset        = 0x59,
  91.     kUsage_84_AudibleAlarmControl = 0x5A,
  92.  
  93.     kUsage_84_Present            = 0x60,
  94.     kUsage_84_Good                = 0x61,
  95.     kUsage_84_InternalFailure    = 0x62,
  96.     kUsage_84_VoltageOutOfRange    = 0x63,
  97.     kUsage_84_FrequencyOutOfRange = 0x64,
  98.     kUsage_84_Overload            = 0x65,
  99.     kUsage_84_OverCharged        = 0x66,
  100.     kUsage_84_OverTemperature    = 0x67,
  101.     kUsage_84_ShutdownRequested    = 0x68,
  102.     kUsage_84_ShutdownImminent    = 0x69,
  103. //    kUsage_84_                    = 0x6A,        Reserved
  104.     kUsage_84_SwitchOnOff        = 0x6B,
  105.     kUsage_84_Switchable        = 0x6C,
  106.     kUsage_84_Used                = 0x6D,
  107.     kUsage_84_Boost                = 0x6E,
  108.     kUsage_84_Buck                = 0x6F,
  109.  
  110.     kUsage_84_Initialized        = 0x70,
  111.     kUsage_84_Tested            = 0x71,
  112.     kUsage_84_AwaitingPower        = 0x72,
  113.     kUsage_84_CommunicationLost    = 0x73,
  114.  
  115.     kUsage_84_iManufacturer        = 0xFD,
  116.     kUsage_84_iProduct            = 0xFE,
  117.     kUsage_84_iSerialNumber        = 0xFF
  118. };
  119.  
  120. // Usage constants for Battery System page (0x85) 
  121. enum
  122. {
  123.     kUsage_85_SMBBatteryMode        = 0x01,
  124.     kUsage_85_SMBBatteryStatus        = 0x02,
  125.     kUsage_85_SMBAlarmWarning        = 0x03,
  126.     kUsage_85_SMBChargerMode        = 0x04,
  127.     kUsage_85_SMBChargerStatus        = 0x05,
  128.     kUsage_85_SMBChargerSpecInfo    = 0x06,
  129.     kUsage_85_SMBSelectorState        = 0x07,
  130.     kUsage_85_SMBSelectorPresets    = 0x08,
  131.     kUsage_85_SMBSelectorInfo        = 0x09,
  132.  
  133.     kUsage_85_OptionalMfgFunction1    = 0x10,
  134.     kUsage_85_OptionalMfgFunction2    = 0x11,
  135.     kUsage_85_OptionalMfgFunction3    = 0x12,
  136.     kUsage_85_OptionalMfgFunction4    = 0x13,
  137.     kUsage_85_OptionalMfgFunction5    = 0x14,
  138.     kUsage_85_ConnectionToSMBus        = 0x15,
  139.     kUsage_85_OutputConnection        = 0x16,
  140.     kUsage_85_ChargerConnection        = 0x17,
  141.     kUsage_85_BatteryInsertion        = 0x18,
  142.     kUsage_85_Usenext                = 0x19,
  143.     kUsage_85_OKToUse                = 0x1A,
  144.     kUsage_85_BatterySupported        = 0x1B,
  145.     kUsage_85_SelectorRevision        = 0x1C,
  146.     kUsage_85_ChargingIndicator        = 0x1D,
  147.  
  148.     kUsage_85_ManufacturerAccess    = 0x28,
  149.     kUsage_85_RemainingCapacityLimit = 0x29,
  150.     kUsage_85_RemainingTimeLimit    = 0x2A,
  151.     kUsage_85_AtRate                = 0x2B,
  152.     kUsage_85_CapacityMode            = 0x2C,
  153.     kUsage_85_BroadcastToCharger    = 0x2D,
  154.     kUsage_85_PrimaryBattery        = 0x2E,
  155.     kUsage_85_ChargeController        = 0x2F,
  156.     
  157.     kUsage_85_TerminateCharge        = 0x40,
  158.     kUsage_85_TerminateDischarge    = 0x41,
  159.     kUsage_85_BelowRemainingCapacityLimit = 0x42,
  160.     kUsage_85_RemainingTimeLimitExpired    = 0x43,
  161.     kUsage_85_Charging                = 0x44,
  162.     kUsage_85_Discharging            = 0x45,
  163.     kUsage_85_FullyCharged            = 0x46,
  164.     kUsage_85_FullyDischarged        = 0x47,
  165.     kUsage_85_ConditioningFlag        = 0x48,
  166.     kUsage_85_AtRateOK                = 0x49,
  167.     kUsage_85_SMBErrorCode            = 0x4A,
  168.     kUsage_85_NeedReplacement        = 0x4B,
  169.     kUsage_85_AtRateTimeToFull        = 0x60,
  170.     kUsage_85_AtRateTimeToEmpty        = 0x61,
  171.     kUsage_85_AverageCurrent        = 0x62,
  172.     kUsage_85_Maxerror                = 0x63,
  173.     kUsage_85_RelativeStateOfCharge    = 0x64,
  174.     
  175.     
  176.     kUsage_85_AbsoluteStateOfCharge    = 0x65,
  177.     kUsage_85_RemainingCapacity        = 0x66,
  178.     kUsage_85_FullChargeCapacity    = 0x67,
  179.     kUsage_85_RunTimeToEmpty        = 0x68,
  180.     kUsage_85_AverageTimeToEmpty    = 0x69,
  181.     kUsage_85_AverageTimeToFull        = 0x6A,
  182.     kUsage_85_CycleCount            = 0x6B,
  183.  
  184.     kUsage_85_BattPackModelLevel    = 0x80,
  185.     kUsage_85_InternalChargeController    = 0x81,
  186.     kUsage_85_PrimaryBatterySupport    = 0x82,
  187.     kUsage_85_DesignCapacity        = 0x83,
  188.     kUsage_85_SpecificationInfo        = 0x84,
  189.     kUsage_85_ManufacturerDate        = 0x85,
  190.     kUsage_85_SerialNumber            = 0x86,
  191.     kUsage_85_iManufacturerName        = 0x87,
  192.     kUsage_85_iDevicename            = 0x88,
  193.     kUsage_85_iDeviceChemistry        = 0x89,
  194.     kUsage_85_ManufacturerData        = 0x8A,
  195.     kUsage_85_Rechargable            = 0x8B,
  196.     kUsage_85_WarningCapacityLimit    = 0x8C,
  197.     kUsage_85_CapacityGranularity1    = 0x8D,
  198.     kUsage_85_CapacityGranularity2    = 0x8E,
  199.     kUsage_85_iOEMInformation        = 0x8F,
  200.  
  201.     kUsage_85_InhibitCharge            = 0xC0,
  202.     kUsage_85_EnablePolling            = 0xC1,
  203.     kUsage_85_ResetToZero            = 0xC2,
  204.  
  205.     kUsage_85_ACPresent                = 0xD0,
  206.     kUsage_85_BatteryPresent        = 0xD1,
  207.     kUsage_85_PowerFail                = 0xD2,
  208.     kUsage_85_AlarmInhibited        = 0xD3,
  209.     kUsage_85_ThermistorUnderRange    = 0xD4,
  210.     kUsage_85_ThermistorHot            = 0xD5,
  211.     kUsage_85_ThermistorCold        = 0xD6,
  212.     kUsage_85_ThermistorOverRange    = 0xD7,
  213.     kUsage_85_VoltageOutOfRange        = 0xD8,
  214.     kUsage_85_CurrentOutOfRange        = 0xD9,
  215.     kUsage_85_CurrentNotRegulated    = 0xDA,
  216.     kUsage_85_VoltageNotRegulated    = 0xDB,
  217.     kUsage_85_MasterMode            = 0xDC,
  218.  
  219.     kUsage_85_ChargerSelectorSupport = 0xF0,
  220.     kUsage_85_ChargerSpec            = 0xF1,
  221.     kUsage_85_Level2                = 0xF2,
  222.     kUsage_85_Level3                = 0xF3
  223. };
  224.  
  225. struct PowerDeviceDescriptor {
  226.     UInt16                    descVersion;
  227.     UInt16                    vendor;    
  228.     UInt16                    product;    
  229.     UInt16                    version;
  230.     UInt32                    reference;
  231. };    
  232. typedef struct     PowerDeviceDescriptor PowerDeviceDescriptor, *PowerDeviceDescriptorPtr;
  233.  
  234.     
  235.  
  236. // Prototypes for Exported Functions
  237. OSStatus GetNextPowerDevice (PowerDeviceDescriptor *device);
  238. OSStatus USBPowerGetUsageData (USBReference reference, UInt32 inCollection, HIDUsage inUsagePage, HIDUsage inUsage, SInt32 *value);
  239. OSStatus USBPowerSetUsageData (USBReference reference, UInt32 inCollection, HIDUsage inUsagePage, HIDUsage inUsage, SInt32 value);
  240. OSStatus USBPowerGetCapacityLimits (USBReference inReference, UInt32 *warningLevel, UInt32 *shutdownLevel);
  241. OSStatus USBPowerSetCapacityLimits (USBReference inReference, UInt32 inWarningLevel, UInt32 inShutdownLevel);
  242. OSStatus USBPowerFindCollection (USBReference inReference, HIDCollectionNode *collectionNode, UInt32 *index);
  243.  
  244. #endif